package com.wangp.springbootsource.ioc;

/**
 * <pre>
 * classname refreshmethod
 * description
 * </pre>
 *
 * @author wangp
 * @date 2020/9/18 19:50
 **/
public class Info {
    /**
     *  refresh方法:
     *      1.prepareRefresh
     *          1) 容器状态设置
     *          2) 舒适化属性设置
     *          3) 必备属性是否存在
     *      2.prepareBeanFactory
     *          1) 设置beanFactory一些属性
     *          2) 添加后置处理器
     *          3) 设置忽略的自动装配接口
     *          4) 注册一些组件
     *      3.postProcessBeanFactory
     *          1) 子类重写以在BeanFactory完成创建后做进一步的设置
     *      4.invokeBeanFactoryPostProcessors
     *          1) 调用BeanDefinitionRegistryPostProcessor实现向容器内添加bean的定义
     *          2) 调用BeanFactoryPostProcessor实现向容器内Bean的定义添加属性
     *      5.registerBeanPostProcessors
     *          1) 找到BeanPostProcessor的实现
     *          2） 排序后注册到容器内
     *      6.initMessageSource
     *          1) 初始化国际化相关属性
     *      7.initApplicationEventMulticaster
     *          1) 初始化事件广播器
     *      8.onRefresh
     *          1) 构建web容器
     *      9.registerListeners
     *          1) 添加监听器实现
     *          2） 派发早期监听事件
     *      10.finishBeanFactoryInitialization
     *          1) 初始化单例bean
     *      11.finishRefresh
     *          1） 初始化生命周期处理器
     *          2） 调用生命周期处理器onRefresh方法
     *          3） 发布ContextRefreshedEvent事件
     *          4） JMX相关处理
     */
}
